﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace hbse.Entities
{
    public class Product : EntityBindable
    {
        private string productCode;
        private string productAc;
        private string productAr;
        private string productGab;
        private string productDescription;
        private string customerProductCode; // ตัวเดียวกันกับ Obj Customer
        private Customer customer;
        private Users user;
        private string additionalProcess;
        private string productType;
        private IList<ProductPrint> productPrints;
        private IList<Coas> coass;
        private DateTime? addDate;
        private string status;

        public virtual string ProductCode
        {
            get { return productCode; }
            set
            {
                if (productCode != value)
                {
                    productCode = value;
                    NotifyPropertyChanged("ProductCode");
                }
            }
        }
        public virtual string ProductAc
        {
            get { return productAc; }
            set
            {
                if (productAc != value)
                {
                    productAc = value;
                    NotifyPropertyChanged("ProductAc");
                }
            }
        }
        public virtual string ProductAr
        {
            get { return productAr; }
            set
            {
                if (productAr != value)
                {
                    productAr = value;
                    NotifyPropertyChanged("ProductAr");
                }
            }
        }
        public virtual string ProductGab
        {
            get { return productGab; }
            set
            {
                if (productGab != value)
                {
                    productGab = value;
                    NotifyPropertyChanged("ProductGab");
                }
            }
        }
        public virtual string ProductDescription
        {
            get { return productDescription; }
            set
            {
                if (productDescription != value)
                {
                    productDescription = value;
                    NotifyPropertyChanged("ProductDescription");
                }
            }
        }
        public virtual string CustomerProductCode
        {
            get { return customerProductCode; }
            set
            {
                if (customerProductCode != value)
                {
                    customerProductCode = value;
                    NotifyPropertyChanged("CustomerProductCode");
                }
            }
        }
        public virtual Customer Customer
        {
            get { return customer; }
            set
            {
                if (!Equals(customer, value))
                {
                    customer = value;
                    NotifyPropertyChanged("Customer");
                }
            }
        }
        public virtual Users Users
        {
            get { return user; }
            set
            {
                if (!Equals(user, value))
                {
                    user = value;
                    NotifyPropertyChanged("User");
                }
            }
        }

        public virtual string AdditionalProcess
        {
            get { return additionalProcess; }
            set
            {
                if (additionalProcess != value)
                {
                    additionalProcess = value;
                    NotifyPropertyChanged("AdditionalProcess");
                }
            }
        }
        public virtual string ProductType
        {
            get { return productType; }
            set
            {
                if (productType != value)
                {
                    productType = value;
                    NotifyPropertyChanged("ProductType");
                }
            }
        }

        public virtual IList<ProductPrint> ProductPrints
        {
            get { return productPrints; }
            set
            {
                if (!Equals(productPrints, value))
                {
                    productPrints = value;
                    NotifyPropertyChanged("ProductPrints");
                }
            }
        }
        public virtual IList<Coas> Coass
        {
            get { return coass; }
            set
            {
                if (!Equals(coass, value))
                {
                    coass = value;
                    NotifyPropertyChanged("Coass");
                }
            }
        }

        public virtual DateTime? AddDate
        {
            get { return addDate; }
            set
            {
                if (addDate != value)
                {
                    addDate = value;
                    NotifyPropertyChanged("AddDate");
                }
            }
        }
        public virtual string Status
        {
            get { return status; }
            set
            {
                if (status != value)
                {
                    status = value;
                    NotifyPropertyChanged("Status");
                }
            }
        }
    }
}
